自编码器
自编码器是神经网络中的一种,经过训练后能尝试将输入复制到输出。自编码器有一个隐藏层h,可以产生编码表示输入。该网络可以看成两个部分:一个由函数h=f(X)表示的编码器和一个生成重构的r=g(h)的解码器组成,自编码器可以看作神经网络的一个特例,并采用相同的方法进行训练,不同于前馈网络,自编码器也可以采用再循环训练,
欠完备自编码器
通常我们希望通过自编码器的训练使h获得有用的特性
从自编码器获得有用特征的一种方法是限制h的维度比x小,这种编码维度比输入维度小的自编码器被称为欠完备自编码器。学习欠完备的表示将强制自编码器捕捉训练数据中最显著的特征
学习过程可以简化为最小化损失函数
当解码器是线性的且L是均方误差,欠完备的自编码器会学习出与PCA相同的生成子空间。拥有非线性编码函数f和非线性解码函数g的自编码器能够学习出更强大的PCA非线性推广。如果编码器和解码器被赋予过大的容量,自编码器会复制任务而捕捉不到任何有关数据分布的有用信息,训练来执行的复制任务的自编码器可能无法学习到数据集的任何有用信息
正则自编码器
正则编码器使用的损失函数可以鼓励模型学习其他特性(除了将输入复制到输出),而不必限制使用浅层的编码器和解码器以及晓得编码维数来限制模型容量。这些特性包括稀疏表示、表示的小导数、对噪声或输入缺失的鲁棒性。
几乎任何带有潜变量并配有一个推断过程的生成模型,都可以看作是自编码器的一种特殊形式。
稀疏自编码器
系数自编码器在训练时结合编码层的稀疏惩罚和重构误差:
通过稀疏惩罚使得权重不是对输入值进行简单的复制
稀疏自编码器一般用来学习特征,以便用于像分类这样的任务。稀疏正则化的自编码器必须反映训练数据集的独特统计特征,而不是简单的充当恒等函数。
我们可以简单的把惩罚项当作前馈网络的正则项,这个网络的任务是将输入复制到输出,并尽可能的根据这些稀疏特征执行一些监督学习问题。正则化的最大似然对应对大化p(a|x),相当于最大化log(p(x|a))+log(p(a))。log(p(x|a))即为通常的数据似然项,参数的对数先验项log(p(a))代表了对a的偏好。
我们可以认为稀疏自编码器是对带有潜变量的生成模型的最大似然训练,而不是将稀疏惩罚视为复制任务的正则化。对数似然分解为:
我们可以认为自编码器使用一个高似然值h估计近似总和,这个h是参数编码器的输出,而不是从最优化结果推断出最可能的h。我们根据选择的h,最大化如下:
去噪自编码器
去噪编码器最小化:
其中x1(f的参数)是被噪声损坏的x的副本,去噪编码器需要撤销这些损坏,而不只是简单的对输入的复制。
惩罚导数作为正则
另一正则化的自编码器的策略是使用一个类似稀疏自编码器的惩罚项
这迫使模型在x变化小时目标也没有太大变化的函数,因为这个方法支队训练数据游泳,它迫使自编码器学习可以反映训练数据分布的特征
这种正则化的自编码器被称为收缩自编码器
表示能力、层的大小和深度
由于自编码器属于前馈网络,所以加深编码器会有很多优势。编码器和解码器都是一个前馈网络,这两个部分也能从深度结构中获得好处。
万能近似定理保证至少有一层且隐藏单元足够多的前馈网络能以任意精度模拟任意函数。这意味这具有单隐层的自编码器在数据域能表示近似任意数据的恒等函数,但是,从输入到编码的映射是浅层的,这意味着我们不能添加任意约束。
得分估计
得分匹配是最大似然的代替。它提供了概率分布的一致估计,促使模型在各个数据点x上获得与数据分布相同的得分,在这种情况下,得分是一个特定的梯度场:
DAE的训练准则(条件高斯p(x|h))能让自编码器学到能估计数据分布得分的向量场(g(f(x))-x)
对于连续的x,高斯损坏和重构分布的去噪准则得到的得分估计适用于一般编码器和解码器的参数化,这意味着一个使用平方误差估计
的通用编码器-解码器架构可以用来训练估计得分
一般情况下,不能保证重构函数g(f(x))减去输入x后对应某个函数的地图
使用自编码器学习流形
自编码器和很多其他机器算法一样,利用了数据集在一个低维流形或者一小组这样的流形的思想。其中一些机器学习算法仅能学习到在流形上表现良好但给定不在流形上的输出就会出现异常的函数
流形的一个重要特征是切平面的集合,d维流形上的一点x,切平面由能张成流形上允许变动的局部方向的d维基向量给出。这些局部方向决定了我们能如何微小的变动x而保持在流形上
所有自编码器训练过程涉及两种推动力的初衷:
1、学习训练样本x的表示h使得x能通过解码器近似的从h恢复。
2、满足约束或正则惩罚
自编码器必须有能力表示重构训练实例所需的变化。如果改数据生成分布集中靠近一个低维流形,自编码器能隐式产生捕捉这个流形局部坐标系的表示:仅在x周围关于流形相切变化需要对应于h=f(X)的变化。因此,编码器学习从输入空间x到表示空间的映射,映射仅对沿着流形方向的变化敏感,并且对流形正交方向的变化不敏感。
我们可以把自编码器和其他方法进行对比。学习表征流形最常见的是流形上(或附近)数据点的表示。对于特定实例,这样的表示也称为嵌入。它通常由一个低维向量给出,具有比这个流形的”外围“空间更少的维数。有些算法直接学习每个训练样本的嵌入,而其他算法学习更一般的映射,将周围空间(输入空间)的任何一点映射到它的嵌入。
流形学习大对数专注于试图捕捉到这些流形的无监督学习过程。最初的学习非线性流形的机器学习研究专注于最邻近图的非参数方法。该图每个样例对应一个节点,它的边连临近节点。这些方法将每个节点与张成实例和近邻之间的差向量变化方向的切平面相关联
全局坐标系则可以通过优化或求解线性系统获得,下图展示了如何通过大量局部线性的类高斯平铺得到一个流形
局部非参数方法应用于流形学习的根本困难:如果流形不是很光滑(有很多波峰波谷和曲则),为了覆盖其中每一个变化,需要大量的训练样本,导致没有能力泛化到没见过的变化
收缩自编码器
收缩自编码器在编码h=f(x)的基础上添加了显示正则项,鼓励f的导数尽可能小:
去噪自编码器和收缩自编码器的联系:在小的高斯噪声限制下,重构函数将x映射到r=g(f(x))时,去噪重构误差和收缩惩罚项是等价的。去噪自编码器能抵挡小且有限的输入扰动,而收缩自编码器使特征提取函数能抵抗极小的输入扰动
收缩源于CAE弯曲空间的方式,由于CAE训练为抵抗输入扰动,鼓励将输入点邻域映射到输入点更小的邻域。这能将输入的邻域收缩到更小的邻域
预测稀疏分解
预测稀疏分解(PSD)是 稀疏编码和参数化自编码器的混合模型。模型由编码器f(x)和解码器g(x)组成,h由优化算法控制。优化过程最小化下面公式